﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ErepIrcBot
{
    class Dof : Komenda
    {
        public Dof(Plugin pl)
            : base(pl)
        {
            nazwa = "dof";
            opis = "Wyswietla dofa z wybranego przedzialu dni dla kazdego z graczy";
            parametry = "dzien1 dzien2 kwotaCalosc";
            poziom = 3;
        }

        protected override bool czyWarunek(string tekst, string channel, int userLevel, string nick)
        {
            return tekst.StartsWith("!" + nazwa) && userLevel >= poziom;
        }

        protected override void wykonajInternal(string tekst, string channel, string nick, int userLevel)
        {
            char[] sep = { ' ' };
            string[] podzielone = tekst.Split(sep);
            int dzien1, dzien2, kwota;
            if ((podzielone.Length >= 4) && (int.TryParse(podzielone[1], out dzien1)))
            {
                if (int.TryParse(podzielone[2], out dzien2))
                {
                    if (int.TryParse(podzielone[3], out kwota))
                    {
                        try
                        {
                            plugin.Statystyki.dodajPrzedzial(dzien1, dzien2);
                            List<int> dni = new List<int>();
                            for (int i = Math.Min(dzien1, dzien2); i <= Math.Max(dzien1, dzien2); ++i)
                                dni.Add(i);
                            List<string> napisy = plugin.Statystyki.wypiszDofa(dni, kwota);
                            foreach (string napis in napisy)
                                wyswietlGdzieTrzeba(napis, channel, nick, false);
                        }
                        catch
                        {
                            wyswietlGdzieTrzeba("Co najmniej z dni nie istnieje", channel, nick, false);
                        }
                        
                    }
                }
            }
        }
    }
}
